#pragma once


class COphies;

//////////////////////////////////////////////////////////////////////////
//
// [1] class ExampleDcmStudiesCallback
//
//////////////////////////////////////////////////////////////////////////
class ExampleDcmStudiesCallback : public DcmStudiesCallback
{

public:
	ExampleDcmStudiesCallback(COphies* pParent);
	virtual ~ExampleDcmStudiesCallback();

protected:
	COphies*		m_pParent;

protected:
	virtual void myListHandler(QList<ophies::DataModel*>* list);
	virtual void myObjectHandler(ophies::DataModel* object);
};


//////////////////////////////////////////////////////////////////////////
//
// [2] class ExampleDcmSeriesCallback
//
//////////////////////////////////////////////////////////////////////////
class ExampleDcmSeriesCallback : public  DcmSeriesCallback
{
public:
	ExampleDcmSeriesCallback(COphies* pParent);
	virtual ~ExampleDcmSeriesCallback();

protected:
	COphies*		m_pParent;

protected:
	virtual void myListHandler(QList<ophies::DataModel*>* list);
	virtual void myObjectHandler(ophies::DataModel* object);
};


//////////////////////////////////////////////////////////////////////////
//
// [3] class ExampleDcmInstanceCallback
//
//////////////////////////////////////////////////////////////////////////
class ExampleDcmInstancesCallback : public  DcmInstancesCallback
{
public:
	ExampleDcmInstancesCallback(COphies* pParent);
	virtual ~ExampleDcmInstancesCallback();

protected:
	COphies*		m_pParent;

protected:
	virtual void myListHandler(QList<ophies::DataModel*>* list);
	virtual void myObjectHandler(ophies::DataModel* object);
};


//////////////////////////////////////////////////////////////////////////
//
// [4] class ExampleDocsetsCallback
//
//////////////////////////////////////////////////////////////////////////
class ExampleDocsetsCallback : public  DocsetsCallback
{
public:
	ExampleDocsetsCallback(COphies* pParent);
	virtual ~ExampleDocsetsCallback();

protected:
	COphies*		m_pParent;

protected:
	virtual void myListHandler(QList<ophies::DataModel*>* list);
	virtual void myObjectHandler(ophies::DataModel* object);
};


//////////////////////////////////////////////////////////////////////////
//
// [5] class ExamplePatientsCallback
//
//////////////////////////////////////////////////////////////////////////
class ExamplePatientsCallback : public  PatientsCallback
{
public:
	ExamplePatientsCallback(COphies* pParent);
	virtual ~ExamplePatientsCallback();

protected:
	COphies*		m_pParent;

protected:
	virtual void myListHandler(QList<ophies::DataModel*>* list);
	virtual void myObjectHandler(ophies::DataModel* object);
};